// 调试学生API问题的脚本
const axios = require('axios');

// 设置axios默认配置
axios.defaults.baseURL = 'http://localhost:8080';
axios.defaults.withCredentials = true;

// 测试直接访问学生列表API（不经过前端代理）
async function testDirectAPI() {
  console.log('=== 测试直接访问后端API ===');
  try {
    const response = await axios.get('/system/student/list');
    console.log('✅ 直接API调用成功');
    console.log('返回数据:', JSON.stringify(response.data, null, 2));
    console.log('学生数量:', response.data.rows ? response.data.rows.length : 0);
  } catch (error) {
    console.error('❌ 直接API调用失败:', error.message);
    if (error.response) {
      console.error('状态码:', error.response.status);
      console.error('响应数据:', error.response.data);
    }
  }
}

// 测试前端代理路径
async function testFrontendProxy() {
  console.log('\n=== 测试前端代理路径 ===');
  try {
    const response = await axios.get('/dev-api/system/student/list');
    console.log('✅ 前端代理API调用成功');
    console.log('返回数据:', JSON.stringify(response.data, null, 2));
    console.log('学生数量:', response.data.rows ? response.data.rows.length : 0);
  } catch (error) {
    console.error('❌ 前端代理API调用失败:', error.message);
    if (error.response) {
      console.error('状态码:', error.response.status);
      console.error('响应数据:', error.response.data);
    }
  }
}

// 检查数据库连接
async function checkDatabase() {
  console.log('\n=== 检查数据库连接 ===');
  try {
    const { exec } = require('child_process');
    const command = 'mysql -u root -p123456 -e "USE ry-vue; SELECT COUNT(*) as count FROM sys_student;"';
    
    exec(command, (error, stdout, stderr) => {
      if (error) {
        console.error('❌ 数据库查询失败:', error.message);
        return;
      }
      console.log('✅ 数据库查询成功');
      console.log('查询结果:', stdout);
    });
  } catch (error) {
    console.error('❌ 数据库检查失败:', error.message);
  }
}

// 执行所有测试
async function runAllTests() {
  console.log('开始调试学生信息表空白问题...\n');
  
  await testDirectAPI();
  await testFrontendProxy();
  checkDatabase();
  
  console.log('\n=== 调试完成 ===');
}

runAllTests();